package com.jvxb.manage.livable.controller;

import com.jvxb.manage.livable.entity.RedisChange;
import com.jvxb.manage.livable.service.RedisChangeService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.jvxb.common.web.RespMsg;

/**
 * @author jvxb
 * @since 2022-02-11
 */
@RestController
@RequestMapping("/dataAlter/redis/change/v1")
public class RedisChangeController {

    @Autowired
    private RedisChangeService redisChangeService;

    @PostMapping("/add")
    public RespMsg add(@RequestBody RedisChange redisChange) {
        redisChangeService.save(redisChange);
        return RespMsg.ok();
    }

    @PostMapping("/delete")
    public RespMsg delete(@RequestBody RedisChange redisChange) {
        redisChangeService.removeById(redisChange);
        return RespMsg.ok();
    }

    @PostMapping("/update")
    public RespMsg update(@RequestBody RedisChange redisChange) {
        redisChangeService.saveOrUpdate(redisChange);
        return RespMsg.ok();
    }

    @GetMapping("/getById")
    public RespMsg getById(Long id) {
        RedisChange redisChange = redisChangeService.getById(id);
        return RespMsg.ok(redisChange);
    }

    @GetMapping("/list")
    public RespMsg list() {
        List<RedisChange> list = redisChangeService.list(null);
        return RespMsg.ok(list);
    }

    @GetMapping("listPage")
    public RespMsg listPage(@RequestParam(defaultValue = "10") Integer size,
                            @RequestParam(defaultValue = "1") Integer current) {
        IPage<RedisChange> redisChangeIPage = new Page<>(current, size);
        QueryWrapper wrapper = new QueryWrapper();
        redisChangeService.page(redisChangeIPage, wrapper);
        return RespMsg.ok(redisChangeIPage);
    }
}
